<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="dokuwiki export">

<p>
<a href="start.html" class="wikilink1" title="start.html">gEDA</a> » <a href="geda-developer.html" class="wikilink1" title="geda-developer.html">Development</a> » <a href="geda-gparts_tc.html" class="wikilink1" title="geda-gparts_tc.html">Parts Manager</a> » <span class="curid"><a href="geda-gparts_dd.html" class="wikilink1" title="geda-gparts_dd.html">Design Document</a></span>
</p>

<p>
This page serves as a working document for the design of a parts manager for gEDA. Please submit feedback to the geda-dev or geda-user mailing lists.
</p>

<p>
For implementation details, see <a href="geda-gparts_id.html" class="wikilink1" title="geda-gparts_id.html">gparts_id</a>.
</p>

<p>
Or, return to the <a href="geda-gparts_tc.html" class="wikilink1" title="geda-gparts_tc.html">part manager top level</a> page.
</p>

<h1 class="sectionedit1"><a name="part_manager" id="part_manager">Part Manager</a></h1>
<div class="level1">

<p>
The part manager uses a relational database to store parts used in the development of electronic assemblies.  The part manager also stores attributes for these parts and can place these attributes into a component or symbol for placement into schematics.
</p>

<p>
The part manager provides a <acronym title="Graphical User Interface">GUI</acronym> that allows the user to browse and edit the data in the part database.  The user can select parts in the <acronym title="Graphical User Interface">GUI</acronym>, then cut and paste them into their schematic.
</p>

<p>
The following figure shows the relationship between the parts manager and other applications in the gEDA suite.
</p>

<p>
<a href="media/geda/gparts-flow-2.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-flow-2.png"><img src="media/geda/gparts-flow-2.png" class="media" alt="" /></a>
</p>

<p>
The part database can be configured as either local or remote.  In the remote configuration, many users can access the part database concurrently.
</p>

</div>
<!-- EDIT1 SECTION "Part Manager" [368-1130] -->
<h2 class="sectionedit2"><a name="part_database" id="part_database">Part Database</a></h2>
<div class="level2">

<p>
The following figure shows the entity relationships for a part in the resistor category. The category does not reference any tables in the resistor category, but only contains the view name and stored procedures to manipulate a part within the resistor category. This mechanism allows the tables and relationships to vary by category.
</p>

<p>
<a href="media/geda/gparts_erd_main.png?id=geda%3Agparts_dd" class="media" title="geda:gparts_erd_main.png"><img src="media/geda/gparts_erd_main.png" class="media" alt="" /></a>
</p>

</div>
<!-- EDIT2 SECTION "Part Database" [1131-1524] -->
<h3 class="sectionedit3"><a name="entities" id="entities">Entities</a></h3>
<div class="level3">

<p>
The database always contains tables to store the following entities.  The database contains additional tables to store specific categories of parts (e.g. a capacitor table, a diode table, a resistor table, etc…).  This list excludes junction tables and metadata tables.
</p>

</div>

<h4><a name="category" id="category">Category</a></h4>
<div class="level4">

<p>
A class of parts (e.g. capacitors, diodes, resistors, transistors, etc…).  A category can contain sub-categories (e.g. small-signal diodes, TVS diodes, zener diodes, etc…)  Sub-categories can include additional sub-categories. All parts within a category or sub-category share the same set of attributes (e.g. forward voltage, maximum current, power dissipation, etc…).  Sub-categories do not need to inherit the attributes of their parent.
</p>

<p>
The category stores metadata for mapping the part’s database columns to the component attributes.  For numeric attributes, the category stores the column’s unit of measure (e.g. amps, farads, ohms, volts, etc…).
</p>

<p>
The category also stores the names of database views and stored procedures to access and manipulate the tables of parts within the category.
</p>
<div class="table sectionedit4"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field        </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                     </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> CategoryID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                   </td>
	</tr>
	<tr class="row2">
		<td class="col0"> CategoryName </td><td class="col1"> String </td><td class="col2"> The unique name of the category </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> ParentID     </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Foreign key to Category         </td>
	</tr>
</table></div>
<!-- EDIT4 TABLE [2645-2884] -->
</div>

<h4><a name="company" id="company">Company</a></h4>
<div class="level4">

<p>
Currently, a company represents a part’s manufacturer.  
</p>
<div class="table sectionedit5"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field       </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                    </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> CompanyID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                  </td>
	</tr>
	<tr class="row2">
		<td class="col0"> CompanyName </td><td class="col1"> String </td><td class="col2"> The unique name of the company </td>
	</tr>
</table></div>
<!-- EDIT5 TABLE [2963-3136] -->
</div>

<h4><a name="device" id="device">Device</a></h4>
<div class="level4">

<p>
A type of part.  The device name only provides a mechanism to map parts to symbols.  A part in the library of device resistor can use all the symbols in the library where device is resistor.  Similarly, a symbol where device is resistor can represent any part of device resistor.  When importing a symbol, the database uses the value of the symbol attribute DEVICE as the initial value for the device field.  The user can change the device field after import using the part manager <acronym title="Graphical User Interface">GUI</acronym>.
</p>
<div class="table sectionedit6"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                   </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> DeviceID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                 </td>
	</tr>
	<tr class="row2">
		<td class="col0"> DeviceName </td><td class="col1"> String </td><td class="col2"> The unique name of the device </td>
	</tr>
</table></div>
<!-- EDIT6 TABLE [3642-3809] -->
</div>

<h4><a name="document" id="document">Document</a></h4>
<div class="level4">

<p>
Any file associated with a part.  Documents can include datasheets, erata, user manuals, etc… This entity stores a path to the actual document file.  The path could either be local or network.  The path stored in the database is relative to the base path stored in the configuration file.
</p>
<div class="table sectionedit7"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field        </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                                                        </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> DocumentID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                                                      </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> Category     </td><td class="col1"> String </td><td class="col2"> The document&#039;s category (e.g. “Datasheet”, “Erata”, “User Manual”) </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> Title        </td><td class="col1"> String </td><td class="col2 leftalign"> The document&#039;s title                                               </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> SourceURL    </td><td class="col1"> String </td><td class="col2 leftalign"> The <acronym title="Uniform Resource Locator">URL</acronym> where the document can be obtained on the Internet         </td>
	</tr>
	<tr class="row5">
		<td class="col0"> FileLocation </td><td class="col1"> String </td><td class="col2 leftalign"> The location of the locally stored document                        </td>
	</tr>
</table></div>
<!-- EDIT7 TABLE [4121-4690] -->
</div>

<h4><a name="footprint" id="footprint">Footprint</a></h4>
<div class="level4">

<p>
The PCB artwork associated with a package.  This entity stores a path to the actual PCB footprint file.  The path could either be local or network.  The path stored in the database is relative to the base path stored in the configuration file.
</p>
<div class="table sectionedit8"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field         </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                      </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> FootprintID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                    </td>
	</tr>
	<tr class="row2">
		<td class="col0"> FootprintName </td><td class="col1"> String </td><td class="col2"> The unique name of the footprint </td>
	</tr>
</table></div>
<!-- EDIT8 TABLE [4956-5141] -->
</div>

<h4><a name="model" id="model">Model</a></h4>
<div class="level4">
<div class="table sectionedit9"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field     </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                                        </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> ModelID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                                      </td>
	</tr>
	<tr class="row2">
		<td class="col0"> ModelName </td><td class="col1"> String </td><td class="col2 leftalign"> The name of the MODEL within the model file.       </td>
	</tr>
	<tr class="row3">
		<td class="col0"> ModelPath </td><td class="col1"> String </td><td class="col2 leftalign"> Absolute path to the model file.                   </td>
	</tr>
	<tr class="row4">
		<td class="col0"> ModelType </td><td class="col1"> String </td><td class="col2 leftalign"> The model type: IBIS, PSPICE, etc…               </td>
	</tr>
</table></div>
<!-- EDIT9 TABLE [5158-5537] -->
</div>

<h5><a name="spice" id="spice">Spice</a></h5>
<div class="level5">

<p>
When instantiating a component or creating a heavy symbol that uses a Spice model, the following database columns map to the following attributes.
</p>
<div class="table sectionedit10"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Column          </th><th class="col1 leftalign"> Attribute  </th><th class="col2 leftalign"> Notes                     </th>
	</tr>
	<tr class="row1">
		<td class="col0"> Model.ModelName </td><td class="col1"> MODEL-NAME </td><td class="col2 leftalign">                           </td>
	</tr>
	<tr class="row2">
		<td class="col0"> Model.ModelPath </td><td class="col1 leftalign"> FILE       </td><td class="col2"> Should use absolute path. </td>
	</tr>
</table></div>
<!-- EDIT10 TABLE [5700-5882] -->
</div>

<h4><a name="part_flat" id="part_flat">Part (Flat)</a></h4>
<div class="level4">

<p>
A part represents a class of components. The database uses this version of the part table when configured to use a flat part table. The flat and hierarchical parts tables are mutually exclusive. The database uses one or the other.
</p>
<div class="table sectionedit11"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1"> Type </th><th class="col2 leftalign"> Description                                   </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID     </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                                 </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> CompanyID  </td><td class="col1 leftalign">        </td><td class="col2"> Foreign key to company specifies manufacturer </td>
	</tr>
	<tr class="row3">
		<td class="col0"> PartNumber </td><td class="col1"> String </td><td class="col2 leftalign"> The manufacturers&#039;s part number               </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> DeviceID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Foreign key to Device                         </td>
	</tr>
</table></div>
<!-- EDIT11 TABLE [6137-6494] -->
<p>
Other columns TBD.
</p>

</div>

<h4><a name="part_hierarchical" id="part_hierarchical">Part (Hierarchical)</a></h4>
<div class="level4">

<p>
A part represents a class of components. The database uses this version of the part table when configured to use hierarchical part tables. The flat and hierarchical parts tables are mutually exclusive. The database uses one or the other. 
</p>
<div class="table sectionedit12"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1"> Type </th><th class="col2 leftalign"> Description                                   </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID     </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                                 </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> CompanyID  </td><td class="col1 leftalign">        </td><td class="col2"> Foreign key to company specifies manufacturer </td>
	</tr>
	<tr class="row3">
		<td class="col0"> PartNumber </td><td class="col1"> String </td><td class="col2 leftalign"> The manufacturers&#039;s part number               </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> DeviceID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Foreign key to Device                         </td>
	</tr>
</table></div>
<!-- EDIT12 TABLE [6785-7142] -->
</div>

<h4><a name="package" id="package">Package</a></h4>
<div class="level4">

<p>
The physical structure, or form-factor, of a part (i.e. 0603, SOT-23, PDIP16).  Each package can associate with zero or more footprints.  Also, each footprint could represent zero or more packages.
</p>
<div class="table sectionedit13"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field       </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                                </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PackageID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                              </td>
	</tr>
	<tr class="row2">
		<td class="col0"> PackageName </td><td class="col1"> String </td><td class="col2 leftalign"> The unique name of the package             </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> Technology  </td><td class="col1"> String </td><td class="col2"> The type of package.  Either “SMT” or “TH” </td>
	</tr>
</table></div>
<!-- EDIT13 TABLE [7360-7639] -->
</div>

<h4><a name="symbol" id="symbol">Symbol</a></h4>
<div class="level4">

<p>
The graphical representation of a part. This entity uses the symbol base filename as the unique name of the symbol. This base filename is relative to one of the component libraries found in the configuration files. The component library paths can either be local or network.
</p>
<div class="table sectionedit14"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1 leftalign"> Type   </th><th class="col2 leftalign"> Description                   </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> SymbolID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Surrogate key                                                                       </td>
	</tr>
	<tr class="row2">
		<td class="col0"> SymbolName </td><td class="col1"> String </td><td class="col2"> The unique name of the symbol. This field contains the base filename of the symbol. </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> DeviceID   </td><td class="col1 leftalign">        </td><td class="col2 leftalign"> Foreign key to Device                                                               </td>
	</tr>
</table></div>
<!-- EDIT14 TABLE [7933-8318] -->
</div>
<!-- EDIT3 SECTION "Entities" [1525-8319] -->
<h3 class="sectionedit15"><a name="part_categories" id="part_categories">Part Categories</a></h3>
<div class="level3">

<p>
Part categories break down classes of parts hierarchically. The category hierarchy exists separately than the part hierarchy. The category hierarchy only provides the user with a system to locate parts quickly. A child in the category hierarchy does not need to inherit the attributes of a parent.
</p>

<p>
The parts manager uses categories to keep the lists of parts manageable. If the list of parts in a particular category grows large, the category can be subdivided into sub-categories.
</p>

<p>
It may be difficult to change the categories, using a <acronym title="Graphical User Interface">GUI</acronym>, because of the part table abstraction through database views and stored procedures.  It may be better to distribute the parts manager with a default configuration that works for most.
</p>

<p>
<p><div class="noteclassic">Help is needed with the taxonomy of parts.  Please send feedback to the geda-dev or geda-user mailing lists.
</div></p>
</p>

<p>
The default hierarchy of parts follow:
</p>
<ul>
<li class="level1"><div class="li"> Discretes</div>
<ul>
<li class="level2"><div class="li"> Diodes</div>
<ul>
<li class="level3"><div class="li"> Small-signal</div>
</li>
<li class="level3"><div class="li"> TVS</div>
</li>
<li class="level3"><div class="li"> Zeners</div>
</li>
</ul>
</li>
</ul>
</li>
<li class="level1"><div class="li"> Passives</div>
<ul>
<li class="level2"><div class="li"> Capacitors</div>
</li>
<li class="level2"><div class="li"> Inductors</div>
</li>
<li class="level2"><div class="li"> Resistors</div>
</li>
</ul>
</li>
</ul>

</div>
<!-- EDIT15 SECTION "Part Categories" [8320-9383] -->
<h3 class="sectionedit16"><a name="part_hierarchy" id="part_hierarchy">Part Hierarchy</a></h3>
<div class="level3">

<p>
The part hierarchy allows the database to attach additional attributes to a class of parts.  These attributes provide a faster means to locate and select parts, especially commodity parts. The database only provides these additional attributes when configured to use hierarchical part tables.
</p>

<p>
These additional attributes, stored in numeric format, allow <acronym title="Structured Query Language">SQL</acronym> to select parts. For example, to locate diodes with reverse voltage greater than 60 volts, use the following <acronym title="Structured Query Language">SQL</acronym> statement.
</p>
<pre class="code sql"><span class="kw1">SELECT</span> <span class="sy0">*</span> <span class="kw1">FROM</span> DiodeV
    <span class="kw1">WHERE</span> VR <span class="sy0">&gt;</span> <span class="nu0">60</span>;</pre>

<p>
The intent of the part hierarchy does not include exhaustively classifying all electronic parts or fully parameterizing any class of electronic part.  The part hierarchy simply intends to allow the user to quickly locate a part, such as a 4.75 kΩ 1% 0603.
</p>

<p>
<em class="u">TODO: Develop guidelines for subclassing part.</em>
</p>

<p>
Proposed guidelines for including attributes:
</p>
<ul>
<li class="level1"><div class="li"> Include attributes that are encoded in the manufacturer part number.</div>
</li>
<li class="level1"><div class="li"> Exclude attributes that are inconsistently characterized between manufacturers.</div>
</li>
<li class="level1"><div class="li"> Exclude attributes that must be either read from graphs, or calculated.  </div>
</li>
</ul>

<p>
These attributes may not work for everyone, so the database allows the user to customize these part tables.
</p>

</div>

<h4><a name="bjts" id="bjts">BJTs</a></h4>
<div class="level4">

<p>
Bipolar Junction Transistors (BJTs) extend part with one additional table of attributes.
</p>

<p>
Table name: BJT
</p>

<p>
View name: BJTV
</p>
<div class="table sectionedit17"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field                         </th><th class="col1 leftalign"> Type     </th><th class="col2 leftalign"> Units   </th><th class="col3 leftalign"> Description                                                 </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID                        </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Part                                         </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID                     </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Package                                      </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> Polarity                      </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Either NPN or PNP                                           </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> MaxCollectorCurrent           </td><td class="col1"> Physical </td><td class="col2 leftalign"> AMPS    </td><td class="col3 leftalign"> Maximum collector current (Absolute maximum rating)         </td>
	</tr>
	<tr class="row5">
		<td class="col0 leftalign"> MaxCollectorEmitterVoltage    </td><td class="col1"> Physical </td><td class="col2 leftalign"> VOLTS   </td><td class="col3"> Maximum collector-emitter voltage (Absolute maximum rating) </td>
	</tr>
	<tr class="row6">
		<td class="col0 leftalign"> TransitionFrequency           </td><td class="col1"> Physical </td><td class="col2 leftalign"> HERTZ   </td><td class="col3 leftalign">                                                             </td>
	</tr>
	<tr class="row7">
		<td class="col0 leftalign"> PowerDissipation              </td><td class="col1"> Physical </td><td class="col2 leftalign"> WATTS   </td><td class="col3 leftalign"> Power dissipation (Pd) not including any derating           </td>
	</tr>
</table></div>
<!-- EDIT17 TABLE [10794-11729] -->
<p>
The same table contains small-signal and power BJTs. These transistors can be
placed into separate views using the following criteria.
</p>
<div class="table sectionedit18"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Category         </th><th class="col1 leftalign"> Criteria                </th><th class="col2"> View Name </th>
	</tr>
	<tr class="row1">
		<td class="col0"> Small-signal BJT </td><td class="col1"> PowerDissipation &lt;  1.0 </td><td class="col2 leftalign"> TBD       </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> Power BJT        </td><td class="col1"> PowerDissipation &gt;= 1.0 </td><td class="col2 leftalign"> TBD       </td>
	</tr>
</table></div>
<!-- EDIT18 TABLE [11867-12043] -->
</div>

<h4><a name="capacitors" id="capacitors">Capacitors</a></h4>
<div class="level4">

<p>
Capacitors extend part with one additional table of attributes.
</p>
<div class="table sectionedit19"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field       </th><th class="col1 leftalign"> Type     </th><th class="col2 leftalign"> Units   </th><th class="col3 leftalign"> Description            </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID      </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Part    </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID   </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3"> Foreign key to Package </td>
	</tr>
	<tr class="row3">
		<td class="col0"> Capacitance </td><td class="col1"> Physical </td><td class="col2 leftalign"> FARADS  </td><td class="col3 leftalign"> Capacitance            </td>
	</tr>
</table></div>
<!-- EDIT19 TABLE [12130-12377] -->
<p>
When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.
</p>
<div class="table sectionedit20"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Column                </th><th class="col1"> Attribute </th><th class="col2 leftalign"> Notes                  </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> Device.DeviceName     </td><td class="col1 leftalign"> DEVICE    </td><td class="col2 leftalign">                        </td>
	</tr>
	<tr class="row2">
		<td class="col0"> Capacitor.Capacitance </td><td class="col1 leftalign"> VALUE     </td><td class="col2 leftalign">                        </td>
	</tr>
</table></div>
<!-- EDIT20 TABLE [12503-12691] -->
</div>

<h4><a name="inductors" id="inductors">Inductors</a></h4>
<div class="level4">

<p>
Inductors extend part with one additional table of attributes.
</p>
<div class="table sectionedit21"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1 leftalign"> Type     </th><th class="col2 leftalign"> Units   </th><th class="col3 leftalign"> Description            </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID     </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Part    </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID  </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3"> Foreign key to Package </td>
	</tr>
	<tr class="row3">
		<td class="col0"> Inductance </td><td class="col1"> Physical </td><td class="col2 leftalign"> HENRYS  </td><td class="col3 leftalign"> Inductance             </td>
	</tr>
</table></div>
<!-- EDIT21 TABLE [12776-13019] -->
<p>
When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.
</p>
<div class="table sectionedit22"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Column              </th><th class="col1"> Attribute </th><th class="col2 leftalign"> Notes                  </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> Device.DeviceName   </td><td class="col1 leftalign"> DEVICE    </td><td class="col2 leftalign">                        </td>
	</tr>
	<tr class="row2">
		<td class="col0"> Inductor.Inductance </td><td class="col1 leftalign"> VALUE     </td><td class="col2 leftalign">                        </td>
	</tr>
</table></div>
<!-- EDIT22 TABLE [13145-13327] -->
</div>

<h4><a name="mosfets" id="mosfets">MOSFETs</a></h4>
<div class="level4">

<p>
MOSFETs extend part with one additional table of attributes.
</p>
<div class="table sectionedit23"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field                   </th><th class="col1 leftalign"> Type     </th><th class="col2 leftalign"> Units   </th><th class="col3 leftalign"> Description                                                </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID                  </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Part                                        </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID               </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Package                                     </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> Polarity                </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Either N or P                                              </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> MaxDrainSourceVoltage   </td><td class="col1"> Physical </td><td class="col2 leftalign"> VOLTS   </td><td class="col3 leftalign"> Maximum drain-source voltage (Absolute maximum rating)     </td>
	</tr>
	<tr class="row5">
		<td class="col0 leftalign"> MaxDrainCurrent         </td><td class="col1"> Physical </td><td class="col2 leftalign"> AMPS    </td><td class="col3"> Maximum continuous drain current (Absolute maximum rating) </td>
	</tr>
	<tr class="row6">
		<td class="col0"> TypGateThresholdVoltage </td><td class="col1"> Physical </td><td class="col2 leftalign"> VOLTS   </td><td class="col3 leftalign"> Typical gate threshold voltage                             </td>
	</tr>
	<tr class="row7">
		<td class="col0 leftalign"> PowerDissipation        </td><td class="col1"> Physical </td><td class="col2 leftalign"> WATTS   </td><td class="col3 leftalign"> Power dissipation (Pd) not including any derating          </td>
	</tr>
</table></div>
<!-- EDIT23 TABLE [13408-14287] -->
</div>

<h4><a name="rectifier_small-signal_and_switching_diodes" id="rectifier_small-signal_and_switching_diodes">Rectifier, Small-signal and Switching Diodes</a></h4>
<div class="level4">

<p>
Rectifier, small-signal and switching diodes extend part with one additional table of
attributes. Most diodes can be placed into this table.
</p>

<p>
Table name: Diode
</p>

<p>
View name: DiodeV
</p>
<div class="table sectionedit24"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field             </th><th class="col1 leftalign"> Type     </th><th class="col2"> Units </th><th class="col3 leftalign"> Description                                       </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID            </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3 leftalign"> Foreign key to Part                               </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID         </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3 leftalign"> Foreign key to Package                            </td>
	</tr>
	<tr class="row3">
		<td class="col0"> MaxReverseVoltage </td><td class="col1"> Physical </td><td class="col2"> VOLTS </td><td class="col3"> Maximum reverse voltage (Absolute maximum rating) </td>
	</tr>
	<tr class="row4">
		<td class="col0"> MaxForwardCurrent </td><td class="col1"> Physical </td><td class="col2 leftalign"> AMPS  </td><td class="col3"> Maximum forward current (Absolute maximum rating) </td>
	</tr>
	<tr class="row5">
		<td class="col0"> TypForwardVoltage </td><td class="col1"> Physical </td><td class="col2"> VOLTS </td><td class="col3 leftalign"> Typical forward voltage                           </td>
	</tr>
	<tr class="row6">
		<td class="col0"> AveForwardCurrent </td><td class="col1"> Physical </td><td class="col2 leftalign"> AMPS  </td><td class="col3 leftalign"> Average forward current                           </td>
	</tr>
</table></div>
<!-- EDIT24 TABLE [14523-15173] -->
<p>
The same table contains rectifier, small-signal and switching diodes. These diodes can be
placed into separate views using the following criteria.
</p>
<div class="table sectionedit25"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Category                          </th><th class="col1 leftalign"> Criteria                 </th><th class="col2"> View Name </th>
	</tr>
	<tr class="row1">
		<td class="col0"> Small-signal and switching diodes </td><td class="col1"> AveForwardCurrent &lt;  0.5 </td><td class="col2 leftalign"> TBD       </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> Rectifier diodes                  </td><td class="col1"> AveForwardCurrent &gt;= 0.5 </td><td class="col2 leftalign"> TBD       </td>
	</tr>
</table></div>
<!-- EDIT25 TABLE [15323-15553] -->
</div>

<h4><a name="resistors" id="resistors">Resistors</a></h4>
<div class="level4">

<p>
Resistors extend part with one additional table of attributes.
</p>
<div class="table sectionedit26"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field      </th><th class="col1 leftalign"> Type     </th><th class="col2 leftalign"> Units   </th><th class="col3 leftalign"> Description            </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID     </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3 leftalign"> Foreign key to Part    </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID  </td><td class="col1 leftalign">          </td><td class="col2 leftalign">         </td><td class="col3"> Foreign key to Package </td>
	</tr>
	<tr class="row3">
		<td class="col0"> Resistance </td><td class="col1"> Physical </td><td class="col2 leftalign"> OHMS    </td><td class="col3 leftalign"> Resistance             </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> Tolerance  </td><td class="col1"> Physical </td><td class="col2"> PERCENT </td><td class="col3 leftalign"> Tolerance              </td>
	</tr>
</table></div>
<!-- EDIT26 TABLE [15638-15942] -->
<p>
When instantiating a component or creating a heavy symbol, the following database columns map to the following attributes.
</p>
<div class="table sectionedit27"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Column              </th><th class="col1"> Attribute </th><th class="col2 leftalign"> Notes                  </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> Device.DeviceName   </td><td class="col1 leftalign"> DEVICE    </td><td class="col2 leftalign">                        </td>
	</tr>
	<tr class="row2">
		<td class="col0"> Resistor.Resistance </td><td class="col1 leftalign"> VALUE     </td><td class="col2 leftalign">                        </td>
	</tr>
</table></div>
<!-- EDIT27 TABLE [16068-16250] -->
</div>

<h4><a name="tvs_diodes" id="tvs_diodes">TVS Diodes</a></h4>
<div class="level4">

<p>
TVS diodes extend part with one additional table of attributes.
</p>
<div class="table sectionedit28"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field            </th><th class="col1 leftalign"> Type     </th><th class="col2"> Units </th><th class="col3 leftalign"> Description            </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID           </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3 leftalign"> Foreign key to Part    </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID        </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3"> Foreign key to Package </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> WorkingVoltage   </td><td class="col1"> Physical </td><td class="col2"> VOLTS </td><td class="col3 leftalign"> Working voltage        </td>
	</tr>
	<tr class="row4">
		<td class="col0"> BreakdownVoltage </td><td class="col1"> Physical </td><td class="col2"> VOLTS </td><td class="col3 leftalign"> Breakdown voltage      </td>
	</tr>
</table></div>
<!-- EDIT28 TABLE [16337-16661] -->
</div>

<h4><a name="zener_diodes" id="zener_diodes">Zener Diodes</a></h4>
<div class="level4">

<p>
Zener diodes extend part with one additional table of attributes.
</p>

<p>
Table name: ZenerDiode
</p>

<p>
View name: ZenerDiodeV
</p>
<div class="table sectionedit29"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Field            </th><th class="col1 leftalign"> Type     </th><th class="col2"> Units </th><th class="col3 leftalign"> Description                                       </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> PartID           </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3 leftalign"> Foreign key to Part                               </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> PackageID        </td><td class="col1 leftalign">          </td><td class="col2 leftalign">       </td><td class="col3 leftalign"> Foreign key to Package                            </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> TypZenerVoltage  </td><td class="col1"> Physical </td><td class="col2"> VOLTS </td><td class="col3 leftalign"> Zener voltage                                     </td>
	</tr>
	<tr class="row4">
		<td class="col0"> PowerDissipation </td><td class="col1"> Physical </td><td class="col2"> WATTS </td><td class="col3"> Power dissipation (Pd) not including any derating </td>
	</tr>
</table></div>
<!-- EDIT29 TABLE [16800-17259] -->
</div>
<!-- EDIT16 SECTION "Part Hierarchy" [9384-17260] -->
<h2 class="sectionedit30"><a name="part_manager_gui" id="part_manager_gui">Part Manager GUI</a></h2>
<div class="level2">

<p>
The part manager <acronym title="Graphical User Interface">GUI</acronym> is the main component of the part management system.  The part manager <acronym title="Graphical User Interface">GUI</acronym> allows the user to browse and manipulate the part database and to cut and paste symbols into the schematic editor.
</p>

</div>
<!-- EDIT30 SECTION "Part Manager GUI" [17261-17502] -->
<h3 class="sectionedit31"><a name="use_cases" id="use_cases">Use Cases</a></h3>
<div class="level3">

</div>

<h4><a name="uccomponentcopyclipboard" id="uccomponentcopyclipboard">uc.component.copy.clipboard</a></h4>
<div class="level4">

<p>
Copy a part to the clipboard as a component (light symbol).
</p>
<ol>
<li class="level1"><div class="li"> The user selects a part in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects a symbol to represent the part.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> instantiates a component and overrides attributes.</div>
</li>
<li class="level1"><div class="li"> The user previews the component to ensure the graphic looks correct.</div>
</li>
<li class="level1"><div class="li"> The user selects the copy action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> copies the component to the clipboard.</div>
</li>
<li class="level1"><div class="li"> The user pastes the component in gschem.</div>
</li>
</ol>

</div>

<h4><a name="uccomponentexportfile" id="uccomponentexportfile">uc.component.export.file</a></h4>
<div class="level4">

<p>
Export a part to a file as a heavy symbol.
</p>
<ol>
<li class="level1"><div class="li"> The user selects a part in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects a symbol to represent the part.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> clones the symbol and substitutes attributes.</div>
</li>
<li class="level1"><div class="li"> The user previews the symbol to ensure the graphic looks correct.</div>
</li>
<li class="level1"><div class="li"> The user selects the export action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for a filename and location.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> writes the symbol to the given file.</div>
</li>
</ol>

</div>

<h4><a name="ucdatabasecreate" id="ucdatabasecreate">uc.database.create</a></h4>
<div class="level4">

<p>
Create a new part database.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucdatabasedestroy" id="ucdatabasedestroy">uc.database.destroy</a></h4>
<div class="level4">

<p>
Destroy an existing database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the destroy database action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application drops the database.</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentadd" id="ucdocumentadd">uc.document.add</a></h4>
<div class="level4">

<p>
Add a new document to the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the add document action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for a filename and location.</div>
</li>
<li class="level1"><div class="li"> The application adds the document to the database.</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentattach" id="ucdocumentattach">uc.document.attach</a></h4>
<div class="level4">

<p>
Associate a document(s) with a part(s).
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more parts from the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the attach document action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user with a list of all the documents in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects one or more documents from the list.</div>
</li>
<li class="level1"><div class="li"> The application attaches the given documents to the given parts.</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentdelete" id="ucdocumentdelete">uc.document.delete</a></h4>
<div class="level4">

<p>
Delete a document(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more documents in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected documents from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentdetach" id="ucdocumentdetach">uc.document.detach</a></h4>
<div class="level4">

<p>
Disassociate a document(s) from a part(s).  All parts and documents remain in the database.  Only the relationship is removed.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more parts from the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the detach document action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user with a list of all the documents attached to the given parts.</div>
</li>
<li class="level1"><div class="li"> The user selects one or more documents from the list.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application detaches the given documents from the given parts, if attached.</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentedit" id="ucdocumentedit">uc.document.edit</a></h4>
<div class="level4">

<p>
Edit the metadata associated with a document.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucdocumentview" id="ucdocumentview">uc.document.view</a></h4>
<div class="level4">

<p>
View a document.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucfootprintdelete" id="ucfootprintdelete">uc.footprint.delete</a></h4>
<div class="level4">

<p>
Delete a footprint(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more footprints in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected footprints from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucfootprintedit" id="ucfootprintedit">uc.footprint.edit</a></h4>
<div class="level4">

<p>
Edit the metadata associated with a footprint.
</p>

</div>

<h4><a name="ucfootprintimportfile" id="ucfootprintimportfile">uc.footprint.import.file</a></h4>
<div class="level4">

<p>
Import a single footprint file into the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the import footprint file action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for a footprint file.</div>
</li>
<li class="level1"><div class="li"> The application creates a footprint in the database for a new footprint file.</div>
</li>
<li class="level1"><div class="li"> The application updates a footprint in the database for an old footprint file.</div>
</li>
</ol>

</div>

<h4><a name="ucfootprintimportlibrary" id="ucfootprintimportlibrary">uc.footprint.import.library</a></h4>
<div class="level4">

<p>
Import all footprint files from the library into the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the import footprint library action.</div>
</li>
<li class="level1"><div class="li"> The application searches all footprint libraries.</div>
</li>
<li class="level1"><div class="li"> The application creates footprints in the database for new footprint files in the library.</div>
</li>
<li class="level1"><div class="li"> The application updates footprints in the database for old footprint files in the library. </div>
</li>
</ol>

</div>

<h4><a name="ucmodeladd" id="ucmodeladd">uc.model.add</a></h4>
<div class="level4">

<p>
Add a new model to the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the add model action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for a model type, name, and filename.</div>
</li>
<li class="level1"><div class="li"> The application adds the model to the database.</div>
</li>
</ol>

</div>

<h4><a name="ucmodelattach" id="ucmodelattach">uc.model.attach</a></h4>
<div class="level4">

<p>
Associate a model(s) with a part(s).
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more parts from the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the attach model action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user with a list of all the models in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects one or more models from the list.</div>
</li>
<li class="level1"><div class="li"> The application attaches the given models to the given parts.</div>
</li>
</ol>

</div>

<h4><a name="ucmodeldelete" id="ucmodeldelete">uc.model.delete</a></h4>
<div class="level4">

<p>
Delete a model(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more models in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected models from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucmodeldetach" id="ucmodeldetach">uc.model.detach</a></h4>
<div class="level4">

<p>
Disassociate a model(s) from a part(s).  All parts and models remain in the database.  Only the relationship is removed.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more parts from the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the detach model action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user with a list of all the models attached to the given parts.</div>
</li>
<li class="level1"><div class="li"> The user selects one or more models from the list.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application detaches the given models from the given parts, if attached.</div>
</li>
</ol>

</div>

<h4><a name="ucmodelimportlibraryspice" id="ucmodelimportlibraryspice">uc.model.import.library.spice</a></h4>
<div class="level4">

<p>
Import all Spice files from the library into the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the import Spice library action.</div>
</li>
<li class="level1"><div class="li"> The application searches all Spice library directories for files.</div>
</li>
<li class="level1"><div class="li"> The application parses files to extract model names.</div>
</li>
<li class="level1"><div class="li"> The application creates Spice models in the database for new models in the library.</div>
</li>
<li class="level1"><div class="li"> The application updates Spice models in the database for old models in the library.</div>
</li>
</ol>

</div>

<h4><a name="ucmodelview" id="ucmodelview">uc.model.view</a></h4>
<div class="level4">

<p>
TBD
</p>

</div>

<h4><a name="ucpackageadd" id="ucpackageadd">uc.package.add</a></h4>
<div class="level4">

<p>
Add a new package to the database.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucpackagedelete" id="ucpackagedelete">uc.package.delete</a></h4>
<div class="level4">

<p>
Delete a package(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more packages in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected packages from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucpackageedit" id="ucpackageedit">uc.package.edit</a></h4>
<div class="level4">

<p>
Edit the package data.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucpartadd" id="ucpartadd">uc.part.add</a></h4>
<div class="level4">

<p>
Add a new part to the database.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucpartdelete" id="ucpartdelete">uc.part.delete</a></h4>
<div class="level4">

<p>
Delete a part(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more parts in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected parts from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucpartedit" id="ucpartedit">uc.part.edit</a></h4>
<div class="level4">

<p>
Edit the part data.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucpartsearch" id="ucpartsearch">uc.part.search</a></h4>
<div class="level4">

<p>
Search for a part in the database using the manufacturer part number.
</p>

</div>

<h4><a name="ucsymboldelete" id="ucsymboldelete">uc.symbol.delete</a></h4>
<div class="level4">

<p>
Delete a symbol(s) from the database.  Remove all references.
</p>
<ol>
<li class="level1"><div class="li"> The user selects one or more symbols in the database.</div>
</li>
<li class="level1"><div class="li"> The user selects the delete action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for confirmation.</div>
</li>
<li class="level1"><div class="li"> The application deletes the selected symbols from the database.</div>
</li>
</ol>

</div>

<h4><a name="ucsymboledit" id="ucsymboledit">uc.symbol.edit</a></h4>
<div class="level4">

<p>
Edit the metadata associated with a symbol.
</p>
<ol>
<li class="level1"><div class="li"> TBD</div>
</li>
</ol>

</div>

<h4><a name="ucsymbolimportfile" id="ucsymbolimportfile">uc.symbol.import.file</a></h4>
<div class="level4">

<p>
Import a single symbol file into the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the import symbol file action.</div>
</li>
<li class="level1"><div class="li"> The <acronym title="Graphical User Interface">GUI</acronym> prompts the user for a symbol file.</div>
</li>
<li class="level1"><div class="li"> The application creates a symbol in the database for a new symbol file.</div>
</li>
<li class="level1"><div class="li"> The application updates a symbol in the database for an old symbol file.</div>
</li>
</ol>

</div>

<h4><a name="ucsymbolimportlibrary" id="ucsymbolimportlibrary">uc.symbol.import.library</a></h4>
<div class="level4">

<p>
Import the contents of the component library into the database.
</p>
<ol>
<li class="level1"><div class="li"> The user selects the import symbol library action.</div>
</li>
<li class="level1"><div class="li"> The application searches all component libraries specified in the configuration file for symbol files.</div>
</li>
<li class="level1"><div class="li"> The application creates symbols in the database for new symbol files in the library.</div>
</li>
<li class="level1"><div class="li"> The application updates symbols in the database for old symbol files in the library.</div>
</li>
</ol>

</div>
<!-- EDIT31 SECTION "Use Cases" [17503-25438] -->
<h3 class="sectionedit32"><a name="ui_design" id="ui_design">UI Design</a></h3>
<div class="level3">

</div>

<h4><a name="company_view" id="company_view">Company View</a></h4>
<div class="level4">

<p>
The company view lists all the companies in the database.
</p>

<p>
<a href="media/geda/gparts-ss-companies.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-companies.png"><img src="media/geda/gparts-ss-companies.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="device_view" id="device_view">Device View</a></h4>
<div class="level4">

<p>
The device view lists all the devices stored in the database.
</p>

<p>
<a href="media/geda/gparts-ss-devices.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-devices.png"><img src="media/geda/gparts-ss-devices.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="documentation_view" id="documentation_view">Documentation View</a></h4>
<div class="level4">

<p>
The documentation view shows all the documents stored in the database.
</p>

<p>
<a href="media/geda/gparts-ss-documentation.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-documentation.png"><img src="media/geda/gparts-ss-documentation.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="footprint_view" id="footprint_view">Footprint View</a></h4>
<div class="level4">

<p>
The footprint view shows all the footprints stored in the database.
</p>

<p>
<a href="media/geda/gparts-ss-footprints.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-footprints.png"><img src="media/geda/gparts-ss-footprints.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="package_view" id="package_view">Package View</a></h4>
<div class="level4">

<p>
The package view shows all the packages stored in the database.
</p>

<p>
<a href="media/geda/gparts-ss-packages.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-packages.png"><img src="media/geda/gparts-ss-packages.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="part_view" id="part_view">Part View</a></h4>
<div class="level4">

<p>
The part view shows parts stored in the database. The user selects the category from the left pane.  The parts within the given category show in the middle pane. After selecting a part from the middle pane, the symbols available for that part show in the lower right pane.  The upper right pane shows the symbol preview. 
</p>

<p>
<a href="media/geda/gparts-ss-parts-4.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-parts-4.png"><img src="media/geda/gparts-ss-parts-4.png" class="media" alt="" /></a>
</p>

<p>
The edit→copy command places the component on the clipboard. The component can then be pasted into gschem.
</p>

<p>
<a href="media/geda/gparts-ss-parts-4b.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-parts-4b.png"><img src="media/geda/gparts-ss-parts-4b.png" class="media" alt="" /></a>
</p>

</div>

<h4><a name="symbol_view" id="symbol_view">Symbol View</a></h4>
<div class="level4">

<p>
The symbol view shows all the symbols stored in the database.  The upper right pane shows the symbol preview.
</p>

<p>
<a href="media/geda/gparts-ss-symbols-2.png?id=geda%3Agparts_dd" class="media" title="geda:gparts-ss-symbols-2.png"><img src="media/geda/gparts-ss-symbols-2.png" class="media" alt="" /></a>
</p>

</div>
<!-- EDIT32 SECTION "UI Design" [25439-26766] -->
<h3 class="sectionedit33"><a name="configuration" id="configuration">Configuration</a></h3>
<div class="level3">

<p>
The parts manager reads gaf&#039;s Scheme configuration files using Guile-1.8. The parts manager reads the following configuration files in order.  The parts manager attempts reading the file in each of the given paths in order.  
</p>
<ol>
<li class="level1"><div class="li"> system-gafrc</div>
<ol>
<li class="level2"><div class="li"> the path specified in the environment variable GEDADATARC</div>
</li>
<li class="level2"><div class="li"> the paths retrieved from g_get_system_config_dirs() + “gEDA”</div>
</li>
<li class="level2"><div class="li"> the paths retrieved from g_get_system_data_dirs() + “gEDA”</div>
</li>
</ol>
</li>
<li class="level1"><div class="li"> gafrc</div>
<ol>
<li class="level2"><div class="li"> the path specified in the environment variable HOME</div>
</li>
<li class="level2"><div class="li"> ~/.gEDA</div>
</li>
</ol>
</li>
<li class="level1"><div class="li"> gafrc</div>
<ol>
<li class="level2"><div class="li"> .</div>
</li>
</ol>
</li>
<li class="level1"><div class="li"> system-gpartsrc</div>
<ol>
<li class="level2"><div class="li"> the path specified in the environment variable GPARTSDATARC</div>
</li>
<li class="level2"><div class="li"> the paths retrieved from g_get_system_config_dirs() + “gparts”</div>
</li>
<li class="level2"><div class="li"> the paths retrieved from g_get_system_data_dirs() + “gparts”</div>
</li>
</ol>
</li>
<li class="level1"><div class="li"> gpartsrc</div>
<ol>
<li class="level2"><div class="li"> the path specified in the environment variable HOME</div>
</li>
<li class="level2"><div class="li"> ~/.gEDA</div>
</li>
</ol>
</li>
<li class="level1"><div class="li"> gpartsrc</div>
<ol>
<li class="level2"><div class="li"> .</div>
</li>
</ol>
</li>
</ol>

<p>
The parts manager supports the following configuration items from gaf.
</p>
<div class="table sectionedit34"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Item                      </th><th class="col1 leftalign"> Parser  </th><th class="col2"> Description </th>
	</tr>
	<tr class="row1">
		<td class="col0"> always-promote-attributes </td><td class="col1"> libgeda </td><td class="col2 leftalign">                                                     </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> attribute-promotion       </td><td class="col1"> libgeda </td><td class="col2 leftalign">                                                     </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> bitmap-directory          </td><td class="col1"> libgeda </td><td class="col2 leftalign"> Specifies the directory for bitmap images           </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> bus-style                 </td><td class="col1 leftalign"> gschem  </td><td class="col2 leftalign"> Specifies the line thickness for busses             </td>
	</tr>
	<tr class="row5">
		<td class="col0 leftalign"> component-library         </td><td class="col1"> libgeda </td><td class="col2 leftalign"> Adds a directory to the component library           </td>
	</tr>
	<tr class="row6">
		<td class="col0 leftalign"> display-color-map         </td><td class="col1 leftalign"> gschem  </td><td class="col2 leftalign"> Specifies schematic colors for display              </td>
	</tr>
	<tr class="row7">
		<td class="col0"> display-outline-color-map </td><td class="col1 leftalign"> gschem  </td><td class="col2 leftalign">                                                     </td>
	</tr>
	<tr class="row8">
		<td class="col0 leftalign"> eval-protected            </td><td class="col1"> libgeda </td><td class="col2 leftalign"> For the parts manager, simply &#039;eval&#039;                </td>
	</tr>
	<tr class="row9">
		<td class="col0 leftalign"> keep-invisible            </td><td class="col1"> libgeda </td><td class="col2 leftalign">                                                     </td>
	</tr>
	<tr class="row10">
		<td class="col0 leftalign"> net-style                 </td><td class="col1 leftalign"> gschem  </td><td class="col2 leftalign"> Specifies the line thickness for nets               </td>
	</tr>
	<tr class="row11">
		<td class="col0 leftalign"> postscript-prolog         </td><td class="col1"> libgeda </td><td class="col2 leftalign"> Ignored by the parts manager                        </td>
	</tr>
	<tr class="row12">
		<td class="col0 leftalign"> print-color-map           </td><td class="col1"> libgeda </td><td class="col2 leftalign"> Specifies schematic colors for printing             </td>
	</tr>
	<tr class="row13">
		<td class="col0 leftalign"> promote-invisible         </td><td class="col1"> libgeda </td><td class="col2 leftalign">                                                     </td>
	</tr>
	<tr class="row14">
		<td class="col0 leftalign"> scheme-directory          </td><td class="col1"> libgeda </td><td class="col2"> Specifies the directory for additional scheme files </td>
	</tr>
</table></div>
<!-- EDIT34 TABLE [27733-29102] -->
<p>
The parts manager supports the following private configuration items.
</p>
<div class="table sectionedit35"><table class="inline">
	<tr class="row0">
		<th class="col0 leftalign"> Item                      </th><th class="col1"> Parser </th><th class="col2"> Description </th>
	</tr>
	<tr class="row1">
		<td class="col0 leftalign"> database-interface        </td><td class="col1"> gparts </td><td class="col2 leftalign"> Adds a database interface module          </td>
	</tr>
	<tr class="row2">
		<td class="col0 leftalign"> document-library          </td><td class="col1"> gparts </td><td class="col2 leftalign"> Adds a directory to the document library  </td>
	</tr>
	<tr class="row3">
		<td class="col0 leftalign"> footprint-library         </td><td class="col1"> gparts </td><td class="col2"> Adds a directory to the footprint library </td>
	</tr>
	<tr class="row4">
		<td class="col0 leftalign"> spice-library             </td><td class="col1"> gparts </td><td class="col2 leftalign"> Adds a directory to the spice library     </td>
	</tr>
</table></div>
<!-- EDIT35 TABLE [29175-29559] -->
</div>

<h4><a name="database-interface" id="database-interface">database-interface</a></h4>
<div class="level4">

<p>
The parts manager uses dynamically loadable modules to support the various database engines.  The parts manager uses a separate module to support each database engine.
</p>
<ul>
<li class="level1"><div class="li"> MySQL</div>
</li>
<li class="level1"><div class="li"> PostgreSQL</div>
</li>
<li class="level1"><div class="li"> SQLite</div>
</li>
</ul>

</div>

<h4><a name="document-library" id="document-library">document-library</a></h4>
<div class="level4">

<p>
Adds a directory to the list of directories where documentation is stored.
</p>

</div>

<h4><a name="footprint-library" id="footprint-library">footprint-library</a></h4>
<div class="level4">

<p>
Adds a directory to the list of directories where footprints are stored. The parts manager can import newlib footprints from these directories.
</p>

</div>

<h4><a name="spice-library" id="spice-library">spice-library</a></h4>
<div class="level4">

<p>
Adds a directory to the list of directories where SPICE models are stored. The parts manager can import these models from these directories.
</p>

</div>
<!-- EDIT33 SECTION "Configuration" [26767-] --></div>
</body>
</html>
